

;( function  ( $, window, document, undefined ){
// 	一、代码最前面的分号，能够防止多个文件压缩合并觉得其余文件最后一行语句没加分号，而引发合并后的语法错误。框架

// 二、匿名函数(function(){})();：因为Javascript执行表达式是从圆括号里面到外面，因此能够用圆括号强制执行声明的函数。避免函数体内和外部的变量冲突。jquery插件

// 三、$实参:$是jquery的简写，不少方法和类库也使用$,这里$接受jQuery对象，也是为了不$变量冲突，保证插件能够正常运行。函数

// 四、window, document实参分别接受window, document对象，window, document对象都是全局环境下的，而在函数体内的window, document实际上是局部变量，不是全局的window, document对象。这样作有个好处就是能够提升性能，减小做用域链的查询时间，若是你在函数体内须要屡次调用window 或 document对象，这样把window 或 document对象看成参数传进去，这样作是很是有必要的。固然若是你的插件用不到这两个对象，那么就不用传递这两个参数了。性能

// 五、最后剩下一个undefined形参了，那么这个形参是干什么用的呢，看起来是有点多余。undefined在老一辈的浏览器是不被支持的，直接使用会报错，js框架要考虑到兼容性，所以增长一个形参undefinedspa





//插件初始化
function init(target, options) { 
	var settings = $.extend({}, $.fn.socialShare.defaults, options);
 }

function replaceAPI (api,options) {
	api = api.replace('{url}', options.url);
	api = api.replace('{title}', options.title);
	api = api.replace('{content}',options.content);
	api = api.replace('{pic}', options.pic);
	return api;
}

function tQQ(target,options){
	var options = $.extend({}, $.fn.socialShare.defaults, options);
	window.open(replaceAPI(tqq,options));
}


function qZone(target,options){
	var options = $.extend({}, $.fn.socialShare.defaults, options);
	window.open(replaceAPI(qzone,options));
}


function sinaWeibo(target,options){
	var options = $.extend({}, $.fn.socialShare.defaults, options);
	window.open(replaceAPI(sina,options));
}

function Facebook(target,options){
	var options = $.extend({}, $.fn.socialShare.defaults, options);
	window.open(replaceAPI(facebook,options));
}

function Twitter(target,options){
	var options = $.extend({}, $.fn.socialShare.defaults, options);
	window.open(replaceAPI(twitter,options));
}

function doubanShare(target,options){
	window.open(replaceAPI(douban,$.extend({},$.fn.socialShare.defaults,options)));
}

function weixinShare(target,options){
	window.open(replaceAPI(weixin,$.extend({},$.fn.socialShare.defaults,options)));
}

function linkedinShare(target,options){
	window.open(replaceAPI(linkedin,$.extend({},$.fn.socialShare.defaults,options)));
}



//开发插件，开发模块，开发组件，开发工具， 造一堆轮子 造框架 

$.fn.socialShare = function(options, param) {
	if(typeof options == 'string'){
		var method = $.fn.socialShare.methods[options];
		if(method)
		{
			return method(this,param);
		}
	}
	else
	{
		init(this,options);
	}
}


//插件默认参数
$.fn.socialShare.defaults = {
	url: window.location.href,
	title: document.title,
	content: '',
	pic: ''
}


//插件方法
$.fn.socialShare.methods = {
	//初始化方法
	init:function(jq,options){
		return jq.each(function(){
			init(this,options);
		});
	},
	tQQ:function(jq,options){
		return jq.each(function(){
			tQQ(this,options);
		})
	},
	Twitter:function(jq,options){
		return jq.each(function(){
			Twitter(this,options);
		})
	},
	Facebook:function(jq,options){
		return jq.each(function(){
			Facebook(this,options);
		})
	},
	qZone:function(jq,options){
		return jq.each(function(){
			qZone(this,options);
		})
	},
	sinaWeibo:function(jq,options) {
		return jq.each(function(){
			sinaWeibo(this,options);
		});
	},
	doubanShare:function(jq,options) {
		return jq.each(function(){
			doubanShare(this,options);
		});
	},
	weixinShare:function(jq,options){
		return jq.each(function(){
			weixinShare(this,options);
		});
	},
	linkedinShare:function(jq,options){
		return jq.each(function(){
			linkedinShare(this,options);
		});
	}
}


//分享地址
var qzone = 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url={url}&title={title}&pics={pic}&summary={content}';
var sina = 'http://service.weibo.com/share/share.php?url={url}&title={title}&pic={pic}&searchPic=false';
var tqq =  'https://connect.qq.com/widget/shareqq/index.html??url={url}&title={title}&source={SOURCE}&desc={DESC}&pics={IMAGE}&summary={content}';
var douban = 'http://www.douban.com/share/service?href={url}&name={title}&text={content}&image={pic}';
var weixin = 'https://service.weibo.com/share/share.php?url={url}&title={title}&pic=&appkey=';
var twitter =  "https://twitter.com/intent/tweet?url={url}&title={title}"
var facebook = "https://www.facebook.com/sharer/sharer.php?u={url}&title={title}"
var linkedin= "https://www.linkedin.com/shareArticle?url={url}"

	})($,window,document);


